package cn.iocoder.ny.module.mall.mapper;

import cn.iocoder.ny.module.mall.controller.admin.category.dto.MallProductByCategoryDTO;
import cn.iocoder.ny.module.mall.controller.admin.category.vo.MallProductByCategoryPageVo;
import cn.iocoder.ny.module.mall.controller.admin.category.vo.MallProductCategoryPageVo;
import cn.iocoder.ny.module.mall.controller.admin.config.vo.MallConfigPageVo;
import cn.iocoder.ny.module.mall.domain.MallBanner;
import cn.iocoder.ny.module.mall.domain.MallBannerPageVo;
import cn.iocoder.ny.module.mall.domain.MallConfig;
import cn.iocoder.ny.module.mall.domain.MallProductCategory;
import cn.iocoder.ny.module.mall.domain.dto.MallProductMenuDTO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.awt.*;
import java.util.List;

@Mapper
public interface MallProductCategoryMapper extends BaseMapperX<MallProductCategory> {
    int updateBatch(List<MallProductCategory> list);

    int batchInsert(@Param("list") List<MallProductCategory> list);

    /*
    查询分类列表(返回前端)
     */
    List<MallProductMenuDTO> queryMenuList(MallProductMenuDTO mallProductMenuDTO);



    IPage<MallProductByCategoryDTO> queryProductInfoByCategory(IPage<MallProductByCategoryDTO> page, @Param("reqVO") MallProductByCategoryPageVo mallProductCategoryPageVo);


    default PageResult<MallProductCategory> selectPage(MallProductCategoryPageVo mallProductCategoryPageVo) {
        return selectPage(mallProductCategoryPageVo,new LambdaQueryWrapperX<MallProductCategory>()
                .likeIfPresent(MallProductCategory::getName,mallProductCategoryPageVo.getName())
                .eqIfPresent(MallProductCategory::getParentId,mallProductCategoryPageVo.getParentId())
                .eqIfPresent(MallProductCategory::getTenantId,mallProductCategoryPageVo.getTenantId()));
    }
}